package com.mng.index12306.framework.starter.distributedid.core.serviceid;

import com.mng.index12306.framework.starter.distributedid.core.snowflake.SnowflakeIdInfo;

/**
 * @Description : 业务 ID 生成器
 * @Author : YuShaochao
 * @Date : 2024-04-28 12:29
 */
public interface ServiceIdGenerator {

    /**
     * 根据 serviceId 生成雪花算法 Id
     * @param serviceId
     * @return
     */
    default long nextId(long serviceId){
        return 0L;
    }

    /**
     * 根据 serviceId 生成雪花算法ID
     * @param serviceId
     * @return
     */
    default long nextId(String serviceId){
        return 0L;
    }

    /**
     * 根据 serviceId 生成雪花算法ID
     * @param serviceId
     * @return
     */
    default String nextIdStr(long serviceId){
        return null;
    }

    /**
     * 根据 serviceId 生成雪花算法ID
     * @param serviceId
     * @return
     */
    default String nextIdStr(String serviceId){
        return null;
    }


    SnowflakeIdInfo parseSnowflakeId(long snowflakeId);
}
